package netty.protobuf;

import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelInboundHandlerAdapter;
import io.netty.util.CharsetUtil;

/**
 * @author 帅小伙
 * @date 2022/1/16
 * @description
 */
public class NettyClientHandler extends ChannelInboundHandlerAdapter {

    // 通道就绪 就会触发
    @Override
    public void channelActive(ChannelHandlerContext ctx) throws Exception {
       //发送一个student到服务器
        StudentPOJO.Student ah = StudentPOJO.Student.newBuilder().setId(4).setName("ah").build();
        ctx.writeAndFlush(ah);
    }


    // 通道有读取事件时  触发
    @Override
    public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
        ByteBuf buf = (ByteBuf)msg;
        System.out.println("服务器回复的消息:"+buf.toString(CharsetUtil.UTF_8));
        System.out.println("服务器地址"+ctx.channel().remoteAddress());
    }

    @Override
    public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
        ctx.close();
    }
}
